Java 线程问题`望指点

来源:百度知道 编辑:UC知道 时间:2024/07/03 11:17:58
我照着一个视频制作五子棋 ,在制作倒计时的那个线程时出现了点问题,代码大致如下:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class FiveChessFrame extends JFrame implements MouseListener ,Runnable {
...
Thread t = new Thread(this);
....
然后构造函数中有:t.start();
t.suspend();//这个有点问题说 method suspend() from the type Thread is deprecated

MouseClicked(){
在这里加入
t.resume();第一个还可以
但是第二个就出现问题说
The method resume() is undefined for the type String
}
有人知道没?
可能是别的地方出现问题了 我把我的代码全部复制到了
我的百度空间去了。。
帮忙看看
解决问题··我加点分··
谢谢
果然是啊 ,。。。不记得自己在 m

suspend()在新版本jdk中已经抛弃。所以在线程中要使用暂停恢复之类,最好自己定义boolean控制。
The method resume() is undefined for the type String
这句看你的t是不是在那里又定义了一个string类,在该方法中造成覆盖线程类t。。

不知道LZ知道死锁的概念吗?
在一个线程中调用t.suspend()方法,将t暂停执行,要想恢复线程,必须又其他线程调用t.resume()回复t的执行。不提倡使用该方法,因为容易造成死锁。

我把死锁大致概述下,就是上过锁的两个不同的方法,被两个不同的线程对象调用,会出现某一时刻,两个线程对象分别持有一个对象锁,当同时使用完毕自己的对象锁的时候同时需要对方的那种对象锁。这时两个线程对象都不会释放CPU资源,成了死锁。

建议用wait() 使用完毕后可以用notify()解除,这是线程最推荐的暂停执行。也不用用stop()(和resume()一样的原因)。

线程用完之后最好来一个 this.wait(); 否则有可能会导致一定的不稳定